package cc.cix.hq.org.service;

import cc.cix.hq.common.core.entity.Page;
import cc.cix.hq.common.core.entity.QueryRequest;
import cc.cix.hq.common.core.entity.org.User;
import cc.cix.hq.common.core.exception.HqException;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * @author cix
 */
public interface IUserService extends IService<User> {

    /**
     * 查找用户详细信息
     *
     * @param request request
     * @param user    用户对象，用于传递查询条件
     * @return IPage
     */
    Page<User> listUser(User user, QueryRequest request);

    /**
     * 根据手机号获取用户信息
     *
     * @param mobile 手机号
     * @return 用户
     */
    User getUserByMobile(String mobile);

    /**
     * 新增用户
     *
     * @param user 用户
     */
    void createUser(User user) throws HqException;

    /**
     * 修改用户
     *
     * @param user 用户
     */
    void updateUser(User user);

    /**
     * 删除用户
     *
     * @param userIds 用户 id 集合
     */
    void deleteUserByIds(List<String> userIds);

    /**
     * 更新个人信息
     *
     * @param user 个人信息
     * @throws HqException 异常
     */
    void updateProfile(User user) throws HqException;

    /**
     * 注册用户
     *
     * @param user 用户
     */
    void registerUser(User user);

}
